package com.example.roomtest

import android.content.Intent
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.widget.PopupWindow
import androidx.appcompat.app.AppCompatActivity
import androidx.room.Room
import androidx.room.migration.Migration
import androidx.sqlite.db.SupportSQLiteDatabase
import kotlinx.android.synthetic.main.activity_main.*


class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        Log.i("TAG", "------------>>>>>>>>>>onCreate ");
        val migration = object : Migration(2,3) {
            override fun migrate(database: SupportSQLiteDatabase) {
                database.execSQL("alter TABLE Apple add COLUMN price INTEGER NOT NULL DEFAULT 1")
            }

        }
        val appDataBase =
            Room.databaseBuilder(this, AppDataBase::class.java, "database-name2")
                .allowMainThreadQueries().addMigrations(migration).build()
        val dao = appDataBase.appleDao()

        upData.setOnClickListener {
            var a= String.format(resources.getString(R.string.text_off_price),50.21)
            Log.i("TAG", "a====$a ");
        }


        insert.setOnClickListener {
            dao.insert(Apple(9, "apple9",10))
            dao.insert(Apple(9, "apple9",20))
            dao.insert(Apple(9, "apple9",30))


        }
        queryAll.setOnClickListener {
            val list = dao.selectAll()
            list.forEach {
                Log.i("TAG", "id=${it.id}  name=${it.name}   age=${it.age}  price=${it.price}")
            }
        }

        deleteAll.setOnClickListener {
            startActivity(Intent(this,SettingsActivity::class.java))


/*            // 用于PopupWindow的View
            val contentView: View = LayoutInflater.from(this).inflate(R.layout.activity_second, null, false)
            // 创建PopupWindow对象，其中：
            // 第一个参数是用于PopupWindow中的View，第二个参数是PopupWindow的宽度，
            // 第三个参数是PopupWindow的高度，第四个参数指定PopupWindow能否获得焦点
            // 创建PopupWindow对象，其中：
            // 第一个参数是用于PopupWindow中的View，第二个参数是PopupWindow的宽度，
            // 第三个参数是PopupWindow的高度，第四个参数指定PopupWindow能否获得焦点
            val window = PopupWindow(contentView, it.rootView.width, it.rootView.height, true)
            // 设置PopupWindow的背景
            // 设置PopupWindow的背景
            window.setBackgroundDrawable(ColorDrawable(Color.RED))
            // 设置PopupWindow是否能响应外部点击事件
            // 设置PopupWindow是否能响应外部点击事件
            window.setOutsideTouchable(true)
            // 设置PopupWindow是否能响应点击事件
            // 设置PopupWindow是否能响应点击事件
            window.setTouchable(true)
            // 显示PopupWindow，其中：
            // 第一个参数是PopupWindow的锚点，第二和第三个参数分别是PopupWindow相对锚点的x、y偏移
            // 显示PopupWindow，其中：
            // 第一个参数是PopupWindow的锚点，第二和第三个参数分别是PopupWindow相对锚点的x、y偏移
            window.showAsDropDown(it.rootView,0,0)
            // 或者也可以调用此方法显示PopupWindow，其中：
            // 第一个参数是PopupWindow的父View，第二个参数是PopupWindow相对父View的位置，
            // 第三和第四个参数分别是PopupWindow相对父View的x、y偏移
            // window.showAtLocation(parent, gravity, x, y);*/
        }

    }

    override fun onRestart() {
        super.onRestart()
        Log.i("TAG", "------------>>>>>>>>>>onRestart ");
    }

    override fun onResume() {
        super.onResume()
        Log.i("TAG", "------------>>>>>>>>>>onResume ");
    }


    override fun onPause() {
        super.onPause()
        Log.i("TAG", "------------>>>>>>>>>>onPause ");
    }

    override fun onStop() {
        super.onStop()
        Log.i("TAG", "------------>>>>>>>>>>onStop ");
    }

    override fun onStart() {
        super.onStart()
        Log.i("TAG", "------------>>>>>>>>>>onStart ");
    }

    override fun onDestroy() {
        super.onDestroy()
        Log.i("TAG", "------------>>>>>>>>>>onDestroy ");
    }
}